/**
 * Created by hama on 2016/6/28.
 */
//这个对象是用来查询和发表文章的

//引入连接数据库的文件
var mongodb = require('./db');

//创建这个Post类
function Post(name,title,post,ip){
    this.name = name;
    this.title = title;
    this.post = post;
    this.ip = ip;
}
//发表文章
Post.prototype.save = function(callback){
    //1.收集数据
    //2.打开数据库
    //3.插入到数据库的posts集合当中去.
    //4.返回到首页,提示发布成功.
    var date = new Date();
    var time = {
        date:date,
        year:date.getFullYear(),
        month:date.getFullYear() + '-' + (date.getMonth() + 1),
        day:date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate()),
        hour:date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate())
        + ' ' + (date.getHours()),
        minute:date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + (date.getDate())
        + ' ' + (date.getHours()) + ':' + (date.getMinutes()),
    }
    var post =  {
        name:this.name,
        title:this.title,
        time:time,
        post:this.post,
        ip:this.ip
    }
    mongodb.open(function(err,db){
        if(err){
            return callback(err);
        }
        db.collection('posts',function(err,collection){
            if(err){
                mongodb.close();
                return callback(err);
            }
            collection.insert(post,{safe:true},function(err,post){
                mongodb.close();
                if(err){
                    return callback(err);
                }
                callback(null);//这边不返回任何结果.只是完成存储任务.
            })
        })
    })
}
//查询所有文章
Post.get = function(name,callback){
    //1.打开数据库
    //2.查询posts集合
    //3.查询所有的集合当中的文章
    //4.返回给回调函数
    mongodb.open(function(err,db){
        if(err){
            return callback(err);
        }
        db.collection('posts',function(err,collection){
            if(err){
                mongodb.close();
                return callback(err);
            }
            //如果这里有查询条件的话，这里根据查询的条件来进行文章的筛选
            var query = {};
            if(name){
                query.name = name;
            }
            collection.find(query).sort({time:-1}).toArray(function(err,docs){
                mongodb.close();
                if(err){
                    return callback(err);
                }
                callback(null,docs);
            })

        })
    })
}
module.exports = Post;
